package com.jeeboot.modules.job.service;


import com.jeeboot.modules.job.entity.ScheduleJobEntity;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Map;
import java.util.Optional;

/**
 * 定时任务
 *
 * Created by IntelliJ IDEA.
 * 作者: 李折训
 * 邮箱：370261528@qq.com
 * QQ群：571785017
 * 时间: 2017/11/29
 */
public interface ScheduleJobService {

	/**
	 * 根据ID，查询定时任务
	 */
	Optional<ScheduleJobEntity> queryObject(Long jobId);
	
	/**
	 * 查询定时任务列表
	 */
	Page<ScheduleJobEntity> queryList(Map<String, Object> map, Pageable pageable);
	
	/**
	 * 查询总数
	 */
	Long queryTotal(Map<String,Object> map);
	
	/**
	 * 保存定时任务
	 */
	void save(ScheduleJobEntity scheduleJob);
	
	/**
	 * 更新定时任务
	 */
	void update(ScheduleJobEntity scheduleJob);
	
	/**
	 * 批量删除定时任务
	 */
	void deleteBatch(Long[] jobIds);
	
	/**
	 * 批量更新定时任务状态
	 */
	int updateBatch(Long[] jobIds, int status);
	
	/**
	 * 立即执行
	 */
	void run(Long[] jobIds);
	
	/**
	 * 暂停运行
	 */
	void pause(Long[] jobIds);
	
	/**
	 * 恢复运行
	 */
	void resume(Long[] jobIds);
}
